package com.ray.ba.code.generator.app.service;

import cn.hutool.db.Entity;
import cn.hutool.db.PageResult;
import com.ray.ba.code.generator.api.dto.DbConnectionProperty;
import com.ray.ba.code.generator.api.dto.TableRequestDto;
import com.ray.ba.starter.code.generator.entity.GenConfig;
import com.ray.ba.starter.web.api.ResponsePage;

import javax.sql.DataSource;

/**
 * CodeGeneratorService
 *
 * @author ray
 * @date 2020/5/7
 */
public interface CodeGeneratorService {

    /**
     * 分页查询表信息
     *
     * @param dataSource 数据源
     * @param tableName  表名
     * @param pageNum    页码
     * @param pageSize   分页大小
     * @return 表名分页信息
     */
    ResponsePage<Entity> queryTableByTableNameLike(DataSource dataSource, String tableName, Integer pageNum, Integer pageSize);


    /**
     * 生成代码
     *
     * @param genConfig 生成配置
     * @return 代码压缩文件
     */
    byte[] generatorCode(DataSource dataSource, GenConfig genConfig);


}
